{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"http://landlab.github.io\"><img style=\"float: left\" src=\"../../media/landlab_header.png\"></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Introduction to Landlab: Creating a simple 2D scarp diffusion model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<hr>\n",
    "<small>For more Landlab tutorials, click here: <a href=\"https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\">https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html</a></small>\n",
    "<hr>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This tutorial illustrates how you can use Landlab to construct a simple two-dimensional numerical model on a regular (raster) grid, using a simple forward-time, centered-space numerical scheme. The example is the erosional degradation of an earthquake fault scarp, and which evolves over time in response to the gradual downhill motion of soil. Here we use a simple \"geomorphic diffusion\" model for landform evolution, in which the downhill flow of soil is assumed to be proportional to the (downhill) gradient of the land surface multiplied by a transport coefficient.\n",
    "\n",
    "We start by importing the [numpy](https://numpy.org) and [matplotlib](https://matplotlib.org) libraries:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 1: 1D version using numpy\n",
    "\n",
    "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n",
    "\n",
    "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n",
    "\n",
    "$\\mathbf{q}_s = -D \\nabla z$,\n",
    "\n",
    "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n",
    "\n",
    "In this first example, we will create a our 1D domain in $x$ and $z$, and set a value for $D$.\n",
    "\n",
    "This means that the equation we solve will be in 1D. \n",
    "\n",
    "$\\frac{d z}{d t} = \\frac{d q_s}{dx}$,\n",
    "\n",
    "where \n",
    "\n",
    "$q_s = -D \\frac{d z}{dx}$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dx = 1\n",
    "x = np.arange(0, 100, dx, dtype=float)\n",
    "z = np.zeros(x.shape, dtype=float)\n",
    "D = 0.01"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we must create our fault by uplifting some of the domain. We will increment all elements of `z` in which `x>50`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "z[x>50] += 100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we will diffuse our fault for 1,000 years.\n",
    "\n",
    "We will use a timestep with a [Courant–Friedrichs–Lewy condition](https://en.wikipedia.org/wiki/Courant–Friedrichs–Lewy_condition) of $C_{cfl}=0.2$. This will keep our solution numerically stable. \n",
    "\n",
    "$C_{cfl} = \\frac{\\Delta t D}{\\Delta x^2} = 0.2$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fea29041b20>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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7Z133qFnz5785Cc/4b777uPhhx+uv885h3PukOWAG3r88ceprq4+ZGkE+VooHI6/5+4cfDgNjj8FCqJOURaJm3ruMerVqxfTpk3jkUcewTnH/PnzmTBhAlVVVVx99dUsX76c4uJiHn/8cWbOnMnPf/5zvve979UfV+fGG2/k2WefBeCOO+5g2LBhFBUV1a8LU11dzbe//W1GjRrFqFGj+OCDDwDYvn07F1xwAaeccgr/8i//EtNaMWPGjGH9+vVs2rSJoUOHcv3113Pqqafy+eefc/vttzN8+HBGjBjBjBkzAJg4cSJ79+7ljDPOYMaMGdx999088MADR5x36dKljB07ltNOO40LL7yQioqKeP97fSMYSsCwzIZ3YNsncMYU9dolafzRc//zHbC1eeuzNOm4EXDR/c16yKBBgwiHw1RVVdXv69WrF08++eQhVyxauHBh/RK6jS36tWPHDl5++WXWrFmDmbFz504AbrnlFm677TZGjx7N5s2bufDCCykrK+Oee+5h9OjR/Od//ievvfYa06ZNa7LeV199lREjRgDeqpDPPPMMjz76KLNnz2b58uWsWLGCbdu2MWrUKMaMGcPcuXPp3Llz/W8gd9999xHnrK2t5aabbmLOnDnk5eUxY8YM7rzzTp5++unm/Ff6VijsyI53nvuix6FTHhRempiiRKLwR7inkUQt19ClSxdyc3P5p3/6Jy655JL63v1bb73F6tWr64/76quv2L17NwsWLOCll14C4JJLLqFbt26Nnvu8884jEAhQVFTEf/3Xf7Fz50769+/PmWeeCXhLEl911VUEAgHy8/MZO3YsixcvjunSfGvXrmXVqlWMHz8e8JZa6N27d4v/H/wmGHYE4pkts2MDfPJXGHO7/mBJksof4d7MHnaybNiwgUAgQK9evSgrK4vpMdnZ2fUfwgLU1NTU7//www+ZN28eL774Io888ghvv/024XCYhQsX0qHDkVPjoq0vH03dmHudnTt3HrI8cTw/oJxzFBYWsnBh27zmeSjeD1Q/fBKyAlDyj4krSiQKjbnHqLq6milTpnDjjTfGHLIA/fv3Z/Xq1Rw4cIBdu3Yxb948APbs2cOuXbu4+OKL+fWvf10/FHLBBRfwyCOP1D++bv+YMWPql//985//zJdfftnitowZM4YZM2YQCoWorq5mwYIFnH766TE99uSTT6a6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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dt = 0.2 * dx * dx / D\n",
    "total_time = 1e3\n",
    "nts = int(total_time/dt)\n",
    "z_orig = z.copy()\n",
    "for i in range(nts):\n",
    "    qs = -D * np.diff(z)/dx\n",
    "    dzdt = -np.diff(qs)/dx\n",
    "    z[1:-1] += dzdt*dt\n",
    "\n",
    "plt.plot(x, z_orig, label=\"Original Profile\")\n",
    "plt.plot(x, z, label=\"Diffused Profile\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The prior example is pretty simple. If this was all you needed to do, you wouldn't need Landlab. \n",
    "\n",
    "But what if you wanted...\n",
    "\n",
    "... to use the same diffusion model in 2D instead of 1D.\n",
    "\n",
    "... to use an irregular grid (in 1 or 2D). \n",
    "\n",
    "... wanted to combine the diffusion model with a more complex model. \n",
    "\n",
    "... have a more complex model you want to use over and over again with different boundary conditions.\n",
    "\n",
    "These are the sorts of problems that Landlab was designed to solve. \n",
    "\n",
    "In the next two sections we will introduce some of the core capabilities of Landlab. \n",
    "\n",
    "In Part 2 we will use the RasterModelGrid, fields, and a numerical utility for calculating flux divergence. \n",
    "\n",
    "In Part 3 we will use the HexagonalModelGrid. \n",
    "\n",
    "In Part 4 we will use the LinearDiffuser component. \n",
    "\n",
    "## Part 2: 2D version using Landlab's Model Grids\n",
    "\n",
    "The Landlab model grids are data structures that represent the model domain (the variable `x` in our prior example). Here we will use `RasterModelGrid` which creates a grid with regularly spaced square grid elements. The RasterModelGrid knows how the elements are connected and how far apart they are.\n",
    "\n",
    "Lets start by creating a RasterModelGrid class. First we need to import it. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from landlab import RasterModelGrid"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "### (a) Explore the RasterModelGrid\n",
    "\n",
    "Before we make a RasterModelGrid for our fault example, lets explore the Landlab model grid. \n",
    "\n",
    "Landlab considers the grid as a \"dual\" graph. Two sets of points, lines and polygons that represent 2D space. \n",
    "\n",
    "The first graph considers points called \"nodes\" that are connected by lines called \"links\". The area that surrounds each node is called a \"cell\".\n",
    "\n",
    "First, the nodes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from landlab.plot.graph import plot_graph\n",
    "grid = RasterModelGrid((4, 5), xy_spacing=(3,4))\n",
    "plot_graph(grid, at=\"node\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can see that the nodes are points and they are numbered with unique IDs from lower left to upper right. \n",
    "\n",
    "Next the links"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_graph(grid, at=\"link\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "which are lines that connect the nodes and each have a unique ID number. \n",
    "\n",
    "And finally, the cells"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_graph(grid, at=\"cell\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "which are polygons centered around the nodes. \n",
    "\n",
    "Landlab is a \"dual\" graph because it also keeps track of a second set of points, lines, and polygons (\"corners\", \"faces\", and \"patches\"). We will not focus on them further."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### *Exercises for section 2a*\n",
    "\n",
    "(2a.1) Create an instance of a `RasterModelGrid` with 5 rows and 7 columns, with a spacing between nodes of 10 units. Plot the node layout, and identify the ID number of the center-most node."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2a.1 here)\n",
    "\n",
    "rmg = RasterModelGrid((5, 7), 10.0)\n",
    "plot_graph(rmg, at='node')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2a.2) Find the ID of the cell that contains this node."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2a.2 here)\n",
    "plot_graph(rmg, at='cell')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2a.3) Find the ID of the horizontal link that connects to the last node on the right in the middle column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2a.3 here)\n",
    "plot_graph(rmg, at='link')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Use the RasterModelGrid for 2D diffusion \n",
    "\n",
    "Lets continue by making a new grid that is bigger. We will use this for our next fault diffusion example.\n",
    "\n",
    "The syntax in the next line says: create a new *RasterModelGrid* object called **mg**, with 25 rows, 40 columns, and a grid spacing of 10 m."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "mg = RasterModelGrid((25, 40), 10.0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note the use of object-oriented programming here. `RasterModelGrid` is a class; `mg` is a particular instance of that class, and it contains all the data necessary to fully describe the topology and geometry of this particular grid.\n",
    "\n",
    "Next we'll add a *data field* to the grid, to represent the elevation values at grid nodes. The \"dot\" syntax below indicates that we are calling a function (or *method*) that belongs to the *RasterModelGrid* class, and will act on data contained in **mg**. The arguments indicate that we want the data elements attached to grid nodes (rather than links, for example), and that we want to name this data field `topographic__elevation`. The `add_zeros` method returns the newly created NumPy array."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "z = mg.add_zeros('topographic__elevation', at='node')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The above line of code creates space in memory to store 1,000 floating-point values, which will represent the elevation of the land surface at each of our 1,000 grid nodes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's plot the positions of all the grid nodes. The nodes' *(x,y)* positions are stored in the arrays `mg.x_of_node` and `mg.y_of_node`, respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2be50f70>]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(mg.x_of_node, mg.y_of_node, '.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we bothered to count, we'd see that there are indeed 1,000 grid nodes, and a corresponding number of `z` values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1000"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(z)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now for some tectonics. Let's say there's a fault trace that angles roughly east-northeast. We can describe the trace with the equation for a line. One trick here: by using `mg.x_of_node`, in the line of code below, we are calculating a *y* (i.e., north-south) position of the fault trace for each grid node---meaning that this is the *y* coordinate of the trace at the *x* coordinate of a given node."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "fault_trace_y = 50.0 + 0.25 * mg.x_of_node"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here comes the earthquake. For all the nodes north of the fault (i.e., those with a *y* coordinate greater than the corresponding *y* coordinate of the fault trace), we'll add elevation equal to 10 meters plus a centimeter for every meter east along the grid (just to make it interesting):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "z[mg.y_of_node >\n",
    "  fault_trace_y] += 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(A little bit of Python under the hood: the statement `mg.y_of_node > fault_trace_y` creates a 1000-element long boolean array; placing this within the index brackets will select only those array entries that correspond to `True` in the boolean array)\n",
    "\n",
    "Let's look at our newly created initial topography using Landlab's *imshow_node_grid* plotting function (which we first need to import)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from landlab.plot.imshow import imshow_grid\n",
    "imshow_grid(mg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To finish getting set up, we will define two parameters: the transport (\"diffusivity\") coefficient, `D`, and the time-step size, `dt`. (The latter is set using the Courant condition for a forward-time, centered-space finite-difference solution; you can find the explanation in most textbooks on numerical methods)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2000.0"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D = 0.01  # m2/yr transport coefficient\n",
    "dt = 0.2 * mg.dx * mg.dx / D\n",
    "dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Boundary conditions: for this example, we'll assume that the east and west sides are closed to flow of sediment, but that the north and south sides are open. (The order of the function arguments is east, north, west, south)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "mg.set_closed_boundaries_at_grid_edges(True, False, True, False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*A note on boundaries:* with a Landlab raster grid, all the perimeter nodes are boundary nodes. In this example, there are 24 + 24 + 39 + 39 = 126 boundary nodes. The previous line of code set those on the east and west edges to be **closed boundaries**, while those on the north and south are **open boundaries** (the default). All the remaining nodes are known as **core** nodes. In this example, there are 1000 - 126 = 874 core nodes:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "874"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(mg.core_nodes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "One more thing before we run the time loop: we'll create an array to contain soil flux. In the function call below, the first argument tells Landlab that we want one value for each grid link, while the second argument provides a name for this data *field*:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "qs = mg.add_zeros('sediment_flux', at='link')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And now for some landform evolution. We will loop through 25 iterations, representing 50,000 years. On each pass through the loop, we do the following:\n",
    "\n",
    "1. Calculate, and store in the array `g`, the gradient between each neighboring pair of nodes. These calculations are done on **links**. The gradient value is a positive number when the gradient is \"uphill\" in the direction of the link, and negative when the gradient is \"downhill\" in the direction of the link. On a raster grid, link directions are always in the direction of increasing $x$ (\"horizontal\" links) or increasing $y$ (\"vertical\" links).\n",
    "\n",
    "2. Calculate, and store in the array `qs`, the sediment flux between each adjacent pair of nodes by multiplying their gradient by the transport coefficient. We will only do this for the **active links** (those not connected to a closed boundary, and not connecting two boundary nodes of any type); others will remain as zero.\n",
    "\n",
    "3. Calculate the resulting net flux at each node (positive=net outflux, negative=net influx). The negative of this array is the rate of change of elevation at each (core) node, so store it in a node array called `dzdt'.\n",
    "\n",
    "4. Update the elevations for the new time step."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(25):\n",
    "    g = mg.calc_grad_at_link(z)\n",
    "    qs[mg.active_links] = -D * g[mg.active_links]\n",
    "    dzdt = -mg.calc_flux_div_at_node(qs)\n",
    "    z[mg.core_nodes] += dzdt[mg.core_nodes] * dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at how our fault scarp has evolved."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAADtCAYAAABJVEUoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAaU0lEQVR4nO3df6wd9Xnn8ffHhJAfBQXkwBLsLWxFuiVRS5BFs2Xb0tIkbjdaU2lZmaqV26K6f5A2qardmEQq3T+QkJqSrpSW3duExWlTqDcNipVFBIdthCq1AZvQBOOw8QZiHFwch6alJbF97332jzM3ezDn+70zX8/Mmbn+vKQj3zNzZua5c+99POc7z3m+igjMzGyc1s07ADMzK+ckbmY2Yk7iZmYj5iRuZjZiTuJmZiP2qnkHYGY2Fps3b45jx47Veu2+ffs+GxGbOw7JSdzMrK5jx46xd+/eWq+VtL7jcAAncTOzhob12RoncTOzBiKW5x3CyziJm5nVFvhK3MxsxIbWqsRJ3MysESdxM7MRcxI3MxstD6eYmY1WAK5OMTMbpQhfiZuZjZyTuJnZiDmJm5mNVHg4xcxs3Hxj08xstHwlbmY2Wu6dYmY2ch5OMTMbLQ+nmJmNmpO4mdlIhSeFMDMbN1+Jm5mNmJO4mdkouQGWmdmouU68VRdccF5s3HDh7JVSq8dK7670OCXbtbtN/hS1e/5K9qfin+GYY28vhvLtSr7ftmM4ne1m27dv37GIeOPp7idiqY1wWjPqJL5xw4U8cP8dM9dpXeIXIPN7kfvD07p1iTVnZfaX2gak1Ha5pJs7VmpdSQz52FMxlu9v9nb581eyv1xSKDtW6nvOx5fbXyrGtn+Opec29bMv3V/z7Urim2ynr2c2bGBYV+K5s2FmZi8z6WJY57EaSXdJOirpiallvyfpK5K+JOk+SW9YbT9O4mZmjUTNx6ruBjafsmwP8NaI+GHg/wC3rLYTJ3Ezs0baSeIR8TDwwinLHoyIxerp3wAbVtvPqMfEzcz61qDEcL2kvVPPFyJiocGhfhX489Ve5CRuZlZbALWrU45FxKaSo0j6ILAIfGK11zqJm5k10PWHfSRtA94NXBc1DjbqJP6lL/9f3rRxy8x1R57bPXN5tsys9dpeszHK5Y3mfyO5PCSl16UbTaW3Wbfu7LphnYbukrikzcD7gZ+MiJfqbOMbm2ZmjbRzY1PSPcBfAz8o6bCkm4CPAOcCeyQ9Lum/rbafUV+Jm5n1qW4NeM193Thj8cea7sdJ3MyskWF9YtNJ3MysAfdOMTMbLXcx7M1wushZ/1J/ZEP5GbZb/ZE9UmL8NlcVko8htV1pYmu+3fz7ec/7+C+3ZpO4mVkXPMemmdmo+UrczGykPNu9mdnIOYmbmY2SJ0o2Mxs1lxianRHyTZ/aLnXMvb1Pzb+ZazyViz21TS6GkpLF1babJydxM7PR8o1NM7PRCnxj08xsxHwlbmY2ah4TNzMbsWEl8c5m9pG0UdJfSjogab+k91bLL5C0R9JXq3/Pn9rmFkkHJT0l6V1dxWZmVmbyic06j750eSW+CPx2RDwm6Vxgn6Q9wC8DD0XE7ZJ2ADuA90u6AtgKvAV4E/A5SW+Otpv3eh7NNaGkDO40jtY4jnwZYcn+0kkhIn0tJs3+88ltU1b2l/t+0+tyn5tpvxSzLWfIlXhEHImIx6qvXwQOAJcAW4Cd1ct2AtdXX28B7o2I4xHxNHAQuLqr+MzMmgsilmo9+tLLRMmSLgXeBnwBuCgijsAk0QMXVi+7BHh2arPD1TIzswFpZ6LktnR+Y1PS9wF/AbwvIv4x8xZp1opXnAlJ24Ht7UVoZlbPEHundHolLulsJgn8ExHxqWrx85IurtZfDBytlh8GNk5tvgF47tR9RsRCRGyKiE3dRW5mljDJ5Ks/etJldYqAjwEHIuKOqVW7gW3V19uAT08t3yrpHEmXAZcDj3QVn5nZPEm6S9JRSU9MLUtW76V0OZxyDfBLwJclPV4t+wBwO7BL0k3AIeAGgIjYL2kX8CSTypabW69MWcVw74afqdptjpSvaCk9VqpqpLQiY/b+ItpuIpX70yqL/UwRy62dhLuBjwAfn1q2gxnVe7mddJbEI+KvSP82XJfY5jbgtq5iMjM7PdHamHhEPFwVfUzbAlxbfb0T+DzzSuJmZmtOs8KT9ZL2Tj1fiIiFVbZ5WfWepAtXeb2TuJlZI/WvxI/1UYDRS524mdla0XFxSqp6L8lJ3MysiW6zeKp6L8nDKWZmDbR1Y1PSPUxuYq6XdBi4lUT1Xo6TuM3U9hyRZeV9pWV1qbK/sqZPZfNHlpUspk9Tn2+ac9/v7ADLE1tuuwHWM7b4ifqIuDGxamb1XoqTuJlZEwMrlncSNzOrKRhcDncSNzOrr9++KHU4iZuZNTCwHO4kbmZWWwDt9U5phZO4mVkDMbCqGSfxuSkpq2vzOJAvJTurYJ+lv9ypzn3pLaR0yV26JDBXRpju6pcvqZwdR/tvuXNzbJaU6ZWVVKbPU8k2pceas2HlcCdxM7NGBjYo7iRuZtbAwHK4k7iZWW3R6qQQrXASNzOrzXXiZmbjNqwc7iQ+re2mT+1rXlEgpatMSuecTG9WNm9j+vvKVS6k99f2zyp34VXW+Cn3faUqdXKVRM2rPyIWM9ucTK5bXp69XSynt8kNP8RS5lwMbNgCVj52P6y4nMTNzOpqsYthW5zEzcwa8JW4mdmYDWyYx0nczKyBgV2IO4mbmdU2wIbiTuJmZk0MK4d3l8Ql3QW8GzgaEW+tlv0u8GvAN6uXfSAi7q/W3QLcxKRe6jcj4rOdBJbvqpTbsORgmTBSJYG5+RfT5Vip7fKNnXJNpErmiCwr7Ytoe/7IXDleKoayRmHpn0lum3R5X7KEL1cSuJw51uLsdcuJ5auti8XZv0/LJ0v3l9kuVX441yQaZ9SNzbuBjwAfP2X5hyPiQ9MLJF0BbAXeArwJ+JykN8dg25iZ2ZlqaPXrnU2hHREPAy/UfPkW4N6IOB4RTwMHgau7is3MrEg0ePSksySe8R5JX5J0l6Tzq2WXAM9OveZwtewVJG2XtFfS3q4DNTN7hYh6j1VI+i1J+yU9IekeSa8pCafvJH4n8APAlcAR4Per5bMGU2eehYhYiIhNEbGpmxDNzGZbKU453Rwu6RLgN4FN1T3Ds5gMKTfWa3VKRDy/8rWkPwY+Uz09DGyceukG4LkeQzMzq6e9G5uvAl4r6STwOgpzXq9X4pIunnr688AT1de7ga2SzpF0GXA58EifsZmZ1dHGlXhEfAP4EHCIyajEP0TEgyXxdFlieA9wLbBe0mHgVuBaSVcyeVfyDPDrABGxX9Iu4ElgEbh5LpUpmTOfnBFTuQ5y6Q6CqUrC9ksCcyWLyVXZY5XsL79d8zkxS+bLLJ7rMVfCtzQ7jmx3vsy6VDletiTwZPr7SpX+LZ/IbJNblzjW0olM2eSJ5iWLk2OlSgznWB0S0eRj9+tPuXe3EBELANX9wC3AZcC3gf8p6Rcj4k+bhtRZEo+IG2cs/ljm9bcBt3UVj5lZGxrUiR/L3Lv7GeDpiPgmgKRPAT8GDCeJm5mtSe28EzgEvF3S64DvANcBRRV3TuJmZg20kcMj4guSPgk8xmQI+YvAQsm+nMTNzOpqsQFWRNzK5F7haXESNzNrYlifuncSNzNrYmi9U9ZsEi/pNJadYDexv+xxMpMNl3T8y00O3L5cCV9iXeHbzNQfRdsT7GZL+3L7K+j4l+3qlysJTJT3lWwDsHQ8URL43UxJ4PH0utR2y9/NxJfbXyI+SJ/3pTmWGMYZ1sXQzGxt8UTJZmYj5ytxM7Px8nCKmdmI+cammdlYBSWz/3VqzSbxVGOi7Da5OxZ9FoakFE3zmanwKLyiSFV55KtJcnEkKjxy2xQ0hMo3kWq5miRTkZHb39J3Zm+Xq+JYzlSapKpJlv75ZHKbEyfT+zuxOHvd8cRygJO5dUvp72sxsW7uwxnzPv4pkq3qJN0v6dL+QjEzG76WJvZpTa7f6N3Ag5I+KOnsnuIxMxuwmhm8xyyeHE6JiF2S/hfwO8BeSX/C1GhQRNzRQ3xmZsPR81V2HauNiZ8E/hk4BziXwQ3pm5n1LDNJyDwkk7ikzcAdTKZOuyoiXuotKjOzAQogMwnUXOSuxD8I3BAR+/sKxsxs0FpsRduW3Jj4j/cZSNuWM3P3FWm7vC+1qrAkMFl2ldkmW8KXnSMy0WCqoFFUbl1+7sjm65ZzZXrZJlKZcsFE46dcg6mll9LlfantciV8qbI/gOMnZx+rdH8nCvaXKzHMHWspVXo65yQ6sBy+duvEzcw6MbAs7iRuZlbb8MpTnMTNzOqKsk+Dd8lJ3MysgYFdiDuJm5k1MrAsnvvY/WmRdJeko5KemFp2gaQ9kr5a/Xv+1LpbJB2U9JSkd3UVl5lZsZhUgtV59KXLK/G7gY8AH59atgN4KCJul7Sjev5+SVcAW4G3AG8CPifpzRFRXCeYLAvLnds+SwKT80C2XPaXm1eytCQwVcKX7faX2V+qE2Cm7C/buS/xs19OdAiEdPdAKOvqlyury5XjtV0SmNxfYvlq65Lfb6YbYW5/i5lPPy4l9jnvEsOhfW69syvxiHgYeOGUxVuAndXXO4Hrp5bfGxHHI+Jp4CBwdVexmZmVmHxiM2o96pD0BkmflPQVSQck/ZumMfU9Jn5RRBwBiIgjki6sll8C/M3U6w5Xy15B0nZge6dRmpnNEpH9AF2B/wo8EBH/QdKrgdc13cFQbmzOmnJh5pmKiAVgAUDSsO4wmNma19Z4t6TzgJ8Afrna7wngRNP9dDackvC8pIsBqn+PVssPAxunXrcBeK7n2MzMVhc1H7Be0t6px6kjCP8K+CbwPyR9UdJHJb2+aTh9J/HdwLbq623Ap6eWb5V0jqTLgMuBR3qOzcxsdfUnhTgWEZumHgun7OlVwFXAnRHxNiZtv3c0Daez4RRJ9wDXMvnf6DBwK3A7sEvSTcAh4AaAiNgvaRfwJLAI3Hw6lSkAJ19MvCvJvRXKrUpWk2QqRnLNpxLVH8XVJInKkMjNHZmr/sg2hCqYVzLRKGqyv8Q8kJkKlGzDpURVQ0nVRel22WqSzP6+m1iXbUpVUAmTrZ5puTolNVfmanGkqlBSjbF6Ea3Odn8YOBwRX6ief5IhJfGIuDGx6rrE628DbusqHjOzNrSVxCPi7yQ9K+kHI+IpJrnxyab7GcqNTTOz4QvarhP/DeATVWXK14BfaboDJ3Ezs9ra/TRmRDwObDqdfTiJm5k10W6d+GlzEjcza2JYOdxJ3Mysroj2PuzTljWbxE/8/XdmLs/9ALINqxKlf7HYvIwQIFJNpHJlf7lywVSZXm5eydy6XEOogjKzXFndibZLAhPrcjGUHqvtEsPUuSidpzL1feXK/lJljgDLifK+krkyIX8ukvvLxN4HTwphZjZWgcfEzczGq99e4XU4iZuZNTGwfuJO4mZmDfhK3MxsrALwjU0zs/HylXhPvvN3/zR7RWGJYaq8L3KdBbPlfc1LAhczc1imStBK5z4sKasr7rTXcue+kvhKz0XqvJeUQOb2l/s5lpQfpkoFIV9+mCrvK5krE+Dk8ePJdUMUOImbmY3awO5rOombmdUWLjE0Mxs1J3Ezs5GafGDTSdzMbLR8Jd6Tlw79w+wVmbsSuUqT1N330vkDU9ulGiBBYUVGrulTQZUEtD8PZMmcmCUVGbnvt/TnmIq9tGFVqmrk+InEnLGUV4ak5CpGTmbiKNnfGDmJm5mN2LBSuJO4mVlt4eoUM7Nx841NM7MR85W4mdmIDS2Jr5t3AGZmY7HSO6XOow5JZ0n6oqTPlMY0lytxSc8ALwJLwGJEbJJ0AfDnwKXAM8B/jIi/Lz3G0WPfnrk8N56VbQqUWFdSfpZb13ZZXXEjpoLGWaVldalj5cojSxpCdTEP5BAaQg2h7K8khrFquXfKe4EDwHmlO5jnlfhPRcSVEbGper4DeCgiLgceqp6bmQ1HzavwOlfikjYA/w746OmENKThlC3AzurrncD1c4zFzOwVgsk79joPYL2kvVOP7afs7g+A/8xpXtzP68ZmAA9KCuC/R8QCcFFEHAGIiCOSLpy1YXUiTj0ZZma9aHBb89jUSMPLSHo3cDQi9km69nTimVcSvyYinqsS9R5JX6m7YZXwFwCq/wTMzHrTUnXKNcC/l/RzwGuA8yT9aUT8YtMdzWU4JSKeq/49CtwHXA08L+ligOrfo/OIzcwsp40x8Yi4JSI2RMSlwFbgf5ckcJhDEpf0eknnrnwNvBN4AtgNbKtetg34dN+xmZnlRATLNR99mcdwykXAfZJWjv9nEfGApEeBXZJuAg4BN5zOQb7xwgszl+f+h8yVmaW63OVK3XKd8VLlbm3PiZntpJj5fnPHKjkXJeWHZ1rZX+mxuojD0tpOzxHxeeDzpdv3nsQj4mvAj8xY/i3gur7jMTNrIvd5knnwx+7NzBoY2sfuncTNzGry9GxmZmPmfuJmZuM2rBS+hpN4SXVK7m1SqnohNydmruIhVZGRq2gpmROztGIkVxmS2i4Xe+5cpKpGXDFiQxPk/zbmYc0mcTOzLng4xcxsxJzEzcxGyhMlm5mN3LBGxJ3Ezcwa8ZW4mdlIuTqlR0cSJYZLhXNspsoPc2V6uZLFtueBTMV+PFPOlmsIlZMq/cuV4g1hHsjssVz2ZzX5StzMbKx8Y9PMbLzcO8XMbOR8JW5mNmJO4mZmIxURrk4xMxszj4n35PC3vjVzeenUSqkOfblOe9n9nWGd+7LHcnmfjYiHU8zMRsrVKWZmIze0K/F18w7AzGw0qhubdR6rkbRR0l9KOiBpv6T3loTkK3Ezs5paHk5ZBH47Ih6TdC6wT9KeiHiyyU6cxM3MGmhrOCUijgBHqq9flHQAuARolMQHN5wiabOkpyQdlLRj3vGYmX1PBMs1H01IuhR4G/CFpiEN6kpc0lnAHwLvAA4Dj0ranXp78WrgXyT2dfCpp7oJ0swG619m1h1qYf9Boyvx9ZL2Tj1fiIiFU18k6fuAvwDeFxH/2DSmQSVx4GrgYER8DUDSvcAWGr69MDPrSoOr7GMRsSn3AklnM0ngn4iIT5XEM7Qkfgnw7NTzw8CPTr9A0nZgO8BZ/cVlZtbqpBCSBHwMOBARd5TuZ2hj4pqx7GX/7UXEQkRsiohNTuJm1qt2x8SvAX4J+GlJj1ePn2sa0tCuxA8DG6eebwCem1MsZmav0FaJYUT8FbMvXBsZWhJ/FLhc0mXAN4CtwC/MNyQzs4kAwl0M0yJiUdJ7gM8yGfK+KyL2p15/Ao4dgq9PLVoPHOs4zNUMIQYYRhxDiAGGEccQYoBhxDGvGL6/jZ24d8oqIuJ+4P6ar33j9HNJe1e7G9y1IcQwlDiGEMNQ4hhCDEOJYwgxFCuoAe/a4JK4mdlQBem21PPiJG5m1sDQuhiutST+ik9DzcEQYoBhxDGEGGAYcQwhBhhGHEOIoUgMcDhFQ/tfxcxsqN547rlx/VVX1XrtRx9+eF8fY/9r7UrczKwzntnHzGzMIgZ3Y3NoH7svMs/2tZKekfTl6iOze6tlF0jaI+mr1b/nt3zMuyQdlfTE1LLkMSXdUp2bpyS9q+M4flfSN2Z9jLiLOFKzo/R5PjIx9H0uXiPpEUl/W8XxX6rlfZ6LVAy9nouuBLAUUevRl9En8an2tT8LXAHcKOmKnsP4qYi4cmr8awfwUERcDjxUPW/T3cDmU5bNPGZ1LrYCb6m2+aPqnHUVB8CHq/NxZVX332UcK7Oj/BDwduDm6lh9no9UDNDvuTgO/HRE/AhwJbBZ0tvp91ykYoB+z0VnlpeXaz36MvokzlT72og4Aay0r52nLcDO6uudwPVt7jwiHgZeqHnMLcC9EXE8Ip4GDjI5Z13FkdJJHBFxJCIeq75+EViZHaW385GJIaWrcxER8U/V07OrR9DvuUjFkNLZ72cXot0GWK1YC0l8Vvva3B9Q2wJ4UNK+qk0uwEXV1EsrUzBd2EMcqWPO4/y8R9KXquGWlbfuncehl8+OMpfzoVfO0NLruZB0lqTHgaPAnojo/VwkYoA5/V60zVfi7Vu1fW3HromIq5gM59ws6Sd6PHYdfZ+fO4EfYPJW+gjw+33Eofqzo3QWx4wYej8XEbEUEVcy6QB6taS35kLuIo5EDHP5vWjbSj/xNma7b8taSOJzbV8bEc9V/x4F7mPyVvB5SRcDVP8e7SGU1DF7PT8R8Xz1R7wM/DH//61xZ3Fo9uwovZ6PWTHM41ysiIhvA59nMs48l9+N6RjmeS7aFBGcXFqq9ejLWkji32tfK+nVTG6S7O7jwJJeL+ncla+BdwJPVMffVr1sG/DpHsJJHXM3sFXSOZq0+L0ceKSrIFaSReXnmZyPzuKQkrOj9HY+UjHM4Vy8UdIbqq9fC/wM8BX6PRczY+j7XHRpaMMpo68Tb9q+tmUXAfdN/oZ5FfBnEfGApEeBXZJuYjI/6w1tHlTSPcC1TCZiPQzcCtw+65gRsV/SLibzlC4CN0dEK5cJiTiulXQlk3eezwC/3nEcK7OjfLkahwX4AP2ej1QMN/Z8Li4GdlbVHeuAXRHxGUl/TX/nIhXDn/R8LjoREb0OldThj92bmdV03mtfG2+/7LJar91z4IA/dm9mNigDvBJ3Ejczqymg1/HuOpzEzcxqigiOnzgx7zBexknczKymiGDRV+JmZuO15C6GZu3TpJPg05IuqJ6fXz1vZYZzM4BYXubk8eO1HqtRS91XfSVua0JEPCvpTib14durfxci4uvzjczWkojgZAtj4lPdV9/B5FOrj0raHRFPNt2Xk7itJR8G9kl6H/Bvgd+Yczy2xiwvL/PSiy+2savvdV8FkLTSfdVJ3M5cEXFS0n8CHgDeWbUmNmvNCfjsIVhf8+WvUTVRTGUhIlYmiZ7VvfFHS2JyEre15meZdMl7K7BnzrHYGhMRsyZBKdFa90bf2LQ1o+rN8Q4ms+v81ilNl8yGpLXujU7itiZUnQTvZNLL+xDwe8CH5huVWVJr3VedxG2t+DXgUESsDKH8EfCvJf3kHGMymykiFoGV7qsHmHR7LOq+6i6GZmYj5itxM7MRcxI3MxsxJ3EzsxFzEjczGzEncTOzEXMSNzMbMSdxM7MR+39CFHXlByhAPwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "imshow_grid(mg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice that we have just created and run a 2D model of fault-scarp creation and diffusion with fewer than two dozen lines of code. How long would this have taken to write in C or Fortran?\n",
    "\n",
    "While it was very very easy to write in 1D, writing this in 2D would mean we would have needed to keep track of the adjacency of the different parts of the grid. This is the primary problem that the Landlab grids are meant to solve. \n",
    "\n",
    "Think about how difficult this would be to hand code if the grid were irregular or hexagonal. In order to conserve mass and implement the differential equation you would need to know how nodes were conected, how long the links were, and how big each cell was.\n",
    "\n",
    "We do such an example after the next section. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### *Exercises for section 2b*\n",
    "\n",
    "(2b .1) Create an instance of a `RasterModelGrid` called `mygrid`, with 16 rows and 25 columns, with a spacing between nodes of 5 meters. Use the `plot` function in the `matplotlib` library to make a plot that shows the position of each node marked with a dot (hint: see the plt.plot() example above)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2bbe8b80>]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2b.1 here)\n",
    "mygrid = RasterModelGrid((16, 25), xy_spacing=5.0)\n",
    "plt.plot(mygrid.x_of_node, mygrid.y_of_node, '.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.2) Query the grid variables `number_of_nodes` and `number_of_core_nodes` to find out how many nodes are in your grid, and how many of them are core nodes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "400\n",
      "322\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2b.2 here)\n",
    "print(mygrid.number_of_nodes)\n",
    "print(mygrid.number_of_core_nodes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.3) Add a new field to your grid, called `temperature` and attached to nodes. Have the initial values be all zero."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# (enter your solution to 2b.3 here)\n",
    "temp = mygrid.add_zeros('temperature', at='node')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.4) Change the temperature of nodes in the top (north) half of the grid to be 10 degrees C. Use the `imshow_grid` function to display a shaded image of the elevation field."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2b.4 here)\n",
    "temp[mygrid.y_of_node >= 40.0] = 10.0\n",
    "imshow_grid(mygrid, 'temperature')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.5) Use the grid function `set_closed_boundaries_at_grid_edges` to assign closed boundaries to the right and left sides of the grid."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2b.5 here)\n",
    "mygrid.set_closed_boundaries_at_grid_edges(True, False, True, False)\n",
    "imshow_grid(mygrid, 'temperature', color_for_closed='c')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.6) Create a new field of zeros called `heat_flux` and attached to links. Using the `number_of_links` grid variable, verify that your new field array has the correct number of items. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "759\n",
      "759\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2b.6 here)\n",
    "Q = mygrid.add_zeros('heat_flux', at='link')\n",
    "print(mygrid.number_of_links)\n",
    "print(len(Q))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.7) Use the `calc_grad_at_link` grid function to calculate the temperature gradients at all the links in the grid. Given the node spacing and the temperatures you assigned to the top versus bottom grid nodes, what do you expect the maximum temperature gradient to be? Print the values in the gradient array to verify that this is indeed the maximum temperature gradient."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expected max gradient is 2 C/m\n",
      "[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.\n",
      "  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  2.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.\n",
      "  0.  0.  0.]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2b.7 here)\n",
    "print('Expected max gradient is 2 C/m')\n",
    "temp_grad = mygrid.calc_grad_at_link(temp)\n",
    "print(temp_grad)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2b.8) Back to hillslopes: Reset the values in the elevation field of the grid `mg` to zero. Then copy and paste the time loop above (i.e., the block in Section 2b that starts with `for i in range(25):`) below. Modify the last line to add uplift of the hillslope material at a rate `uplift_rate` = 0.0001 m/yr (hint: the amount of uplift in each iteration should be the uplift rate times the time-step duration). Then run the block and plot the resulting topography. Try experimenting with different uplift rates and different values of `D`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2b.8 here)\n",
    "z[:] = 0.0\n",
    "uplift_rate = 0.0001\n",
    "for i in range(25):\n",
    "    g = mg.calc_grad_at_link(z)\n",
    "    qs[mg.active_links] = -D * g[mg.active_links]\n",
    "    dzdt = -mg.calc_flux_div_at_node(qs)\n",
    "    z[mg.core_nodes] += (dzdt[mg.core_nodes] + uplift_rate) * dt\n",
    "imshow_grid(mg, z)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) What's going on under the hood?\n",
    "\n",
    "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n",
    "\n",
    "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n",
    "\n",
    "$\\mathbf{q}_s = -D \\nabla z$,\n",
    "\n",
    "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n",
    "\n",
    "For the numerical solution, we discretize $z$ at a series of *nodes* on a grid. The example in this notebook uses a Landlab *RasterModelGrid*, in which every interior node sits inside a cell of width $\\Delta x$, but we could alternatively have used any grid type that provides nodes, links, and cells.\n",
    "\n",
    "The gradient and sediment flux vectors will be calculated at the *links* that connect each pair of adjacent nodes. These links correspond to the mid-points of the cell faces, and the values that we assign to links represent the gradients and fluxes, respectively, along the faces of the cells.\n",
    "\n",
    "The flux divergence, $\\nabla \\mathbf{q}_s$, will be calculated by summing, for every cell, the total volume inflows and outflows at each cell face, and dividing the resulting sum by the cell area. Note that for a regular, rectilinear grid, as we use in this example, this finite-volume method is equivalent to a finite-difference method.\n",
    "\n",
    "To advance the solution in time, we will use a simple explicit, forward-difference method. This solution scheme for a given node $i$ can be written:\n",
    "\n",
    "$\\frac{z_i^{t+1} - z_i^t}{\\Delta t} = -\\frac{1}{A_i} \\sum\\limits_{j=1}^{N_i} \\delta (l_{ij}) q_s (l_{ij}) \\lambda(l_{ij})$.\n",
    "\n",
    "Here the superscripts refer to time steps, $\\Delta t$ is time-step size, $q_s(l_{ij})$ is the sediment flux per width associated with the link that crosses the $j$-th face of the cell at node $i$, $\\lambda(l_{ij})$ is the width of the cell face associated with that link ($=\\Delta x$ for a regular uniform grid), and $N_i$ is the number of active links that connect to node $i$. The variable $\\delta(l_{ij})$ contains either +1 or -1: it is +1 if link $l_{ij}$ is oriented away from the node (in which case positive flux would represent material leaving its cell), or -1 if instead the link \"points\" into the cell (in which case positive flux means material is entering).\n",
    "\n",
    "To get the fluxes, we first calculate the *gradient*, $G$, at each link, $k$:\n",
    "\n",
    "$G(k) = \\frac{z(H_k) - z(T_k)}{L_k}$.\n",
    "\n",
    "Here $H_k$ refers the *head node* associated with link $k$, $T_k$ is the *tail node* associated with link $k$. Each link has a direction: from the tail node to the head node. The length of link $k$ is $L_k$ (equal to $\\Delta x$ is a regular uniform grid). What the above equation says is that the gradient in $z$ associated with each link is simply the difference in $z$ value between its two endpoint nodes, divided by the distance between them. The gradient is positive when the value at the head node (the \"tip\" of the link) is greater than the value at the tail node, and vice versa.\n",
    "\n",
    "The calculation of gradients in $z$ at the links is accomplished with the `calc_grad_at_link` function. The sediment fluxes are then calculated by multiplying the link gradients by $-D$. Once the fluxes at links have been established, the `calc_flux_div_at_node` function performs the summation of fluxes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### *Exercises for section 2c*\n",
    "\n",
    "(2c.1) Make a 3x3 `RasterModelGrid` called `tinygrid`, with a cell spacing of 2 m. Use the `plot_graph` function to display the nodes and their ID numbers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2c.1 here)\n",
    "tinygrid = RasterModelGrid((3, 3), 2.0)\n",
    "plot_graph(tinygrid, at='node')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2c.2) Give your `tinygrid` a node field called `height` and set the height of the center-most node to 0.5. Use `imshow_grid` to display the height field."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 2c.2 here)\n",
    "ht = tinygrid.add_zeros('height', at='node')\n",
    "ht[4] = 0.5\n",
    "imshow_grid(tinygrid, ht)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2c.3) The grid should have 12 links (extra credit: verify this with `plot_graph`). When you compute gradients, which of these links will have non-zero gradients? What will the absolute value(s) of these gradients be? Which (if any) will have positive gradients and which negative? To codify your answers, make a 12-element numpy array that contains your predicted gradient value for each link."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.    0.    0.    0.25  0.    0.25 -0.25  0.   -0.25  0.    0.    0.  ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2c.3 here)\n",
    "plot_graph(tinygrid, at='link')\n",
    "pred_grad = np.array([0, 0, 0, 0.25, 0, 0.25, -0.25, 0, -0.25, 0, 0, 0])\n",
    "print(pred_grad)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2c.4) Test your prediction by running the `calc_grad_at_link` function on your tiny grid. Print the resulting array and compare it with your predictions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.    0.    0.    0.25  0.    0.25 -0.25  0.   -0.25  0.    0.    0.  ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2c.4 here)\n",
    "grad = tinygrid.calc_grad_at_link(ht)\n",
    "print(grad)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2c.5) Suppose the flux of soil per unit cell width is defined as -0.01 times the height gradient. What would the flux be at the those links that have non-zero gradients? Test your prediction by creating and printing a new array whose values are equal to -0.01 times the link-gradient values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-0.     -0.     -0.     -0.0025 -0.     -0.0025  0.0025 -0.      0.0025\n",
      " -0.     -0.     -0.    ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2c.5 here)\n",
    "flux = -0.01 * grad\n",
    "print(flux)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(2c.6) Consider the net soil accumulation or loss rate around the center-most node in your tiny grid (which is the only one that has a cell). The *divergence* of soil flux can be represented numerically as the sum of the total volumetric soil flux across each of the cell's four faces. What is the flux across each face? (Hint: multiply by face width) What do they add up to? Test your prediction by running the grid function `calc_flux_div_at_node` (hint: pass your unit flux array as the argument). What are the units of the divergence values returned by the `calc_flux_div_at_node` function?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "predicted div is 0 m/yr\n",
      "[ 0.     0.     0.     0.     0.005  0.     0.     0.     0.   ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 2c.6 here)\n",
    "print('predicted div is 0 m/yr')\n",
    "dqsdx = tinygrid.calc_flux_div_at_node(flux)\n",
    "print(dqsdx)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 3: Hexagonal grid\n",
    "\n",
    "Next we will use an non-raster Landlab grid.\n",
    "\n",
    "We start by making a random set of points with x values between 0 and 400 and y values of 0 and 250. We then add zeros to our grid at a field called \"topographic__elevation\" and plot the node locations. \n",
    "\n",
    "Note that the syntax here is exactly the same as in the RasterModelGrid example (once the grid has been created)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2bd3acd0>]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from landlab import HexModelGrid\n",
    "\n",
    "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n",
    "z = mg.add_zeros('topographic__elevation', at='node')\n",
    "plt.plot(mg.x_of_node, mg.y_of_node, '.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we create our fault trace and uplift the hanging wall. \n",
    "\n",
    "We can plot just like we did with the RasterModelGrid. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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eUc6jcFDh+Jnv/41Jh5yCFI+m8duvz2uuf12jB03rsrmiYccgktvugmDhw512iqZTCLV0YHjTjsNP7jwQs/OUu2pFDr798ePr7gCRx57rMfmjs5OjBg1CldOmYLdP/c5xy6bxy577omrb78dm40e7fCwbT7sG9/ABVdfjf4DB3psTnV04HvnnYcTzzwT7R0dzo9lRzqNQUOG4NIbb8QBhx9eZfOW22yDa+64A9vttFNVf/v8gQfi57/5DYYOG+bYnEgk0J5K4VuTJ+PMiy+uusc6+/XDOT//Ob56wgnee6yzE8NHjsSVv/sd9tx336r+ttP48bj6ttvwmS23rLrHDjn6aPzk2msxYNAgx+YW6x6bfM45OPmssyrX2XWPDRw8GJffeivG77034kajDadE0j3W+gMgCeB9AFsAaAMwE8A42fm77747q7B86VI+6/jjeXQyyT868UResWyZk/buW2/xUXvvzWNTKb75iis4m806aVOffZb32nxz3mXoUH78wQe5XC4zM3OxWOR7f/tb3q5/fz5g++359f/+18mzft06vvycc3hMSwufePjh/NGCBU7axx9+yKcccQSPaWnhy84+m9etXeukzXj1VT5oxx15u379+A+33MLFYpGZmcvlMj/x0EO867BhvOeoUfziU085eXK5HN9y9dU8NpXiI/fai9+dNctJW7l8OZ97yik8OpnkM487jpctWeKkzX3nHf76xIm8VVsb33DZZZzJZJy0f73wAu+zxRa805Ah/Mgf/+jYXCqV+IE77uDtBw7kL26zDb/68stOnq716/mq88/nLVpb+TuTJvEH8+Y5aYsWLuRTjz6axySTfPEZZ/Ca1audtDdff50P2XVX3iad5jtvuokLhYJj8zOPPMK7b7IJTxg5kv/++OMOj3w+z1Ouu4637ujgwyZM4NkzZzrlrV65ki887TQek0zy6cccw0sWLXLS5s+Zw9864ADeorWVf/nTn3J3V5eT9srUqbzv2LG8w6BB/NDdd3OpVHJsfujuu3mHQYN437Fj+ZWpU5083V1d/MuLLuItWlv5WwccwPPnzHHSlixaxKcfcwyPSSb5wtNO49UrVzpps2fO5MMmTOCtOzp4ynXXcT6fd2z+++OP84SRI3n34cP5mUcecWwuFAp850038TbpNB+y66785uuvO+WtWb2aLz7jDB6TTPKpRx/N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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n",
    "z[mg.y_of_node >\n",
    "  fault_trace_y] += 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n",
    "imshow_grid(mg, \"topographic__elevation\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And we can use the same code as before to create a diffusion model!\n",
    "\n",
    "Landlab supports multiple grid types. You can read more about them [here](https://landlab.readthedocs.io/en/latest/reference/grid/index.html)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "qs = mg.add_zeros('sediment_flux', at='link')\n",
    "for i in range(25):\n",
    "    g = mg.calc_grad_at_link(z)\n",
    "    qs[mg.active_links] = -D * g[mg.active_links]\n",
    "    dzdt = -mg.calc_flux_div_at_node(qs)\n",
    "    z[mg.core_nodes] += dzdt[mg.core_nodes] * dt\n",
    "imshow_grid(mg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### *Exercises for section 3*\n",
    "\n",
    "(3.1-6) Repeat the exercises from section 2c, but this time using a hexagonal tiny grid called `tinyhex`. Your grid should have 7 nodes: one core node and 6 perimeter nodes. (Hints: use `node_layout = 'hex'`, and make a grid with 3 rows and 2 base-row columns.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 3.1 here)\n",
    "tinyhex = HexModelGrid((3, 2), 2.0)\n",
    "plot_graph(tinyhex, at='node')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 3.2 here)\n",
    "hexht = tinyhex.add_zeros('height', at='node')\n",
    "hexht[3] = 0.5\n",
    "imshow_grid(tinyhex, hexht)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.    0.    0.25  0.25  0.    0.25 -0.25  0.   -0.25 -0.25  0.    0.  ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 3.3 here)\n",
    "plot_graph(tinyhex, at='link')\n",
    "pred_grad = np.array([0, 0, 0.25, 0.25, 0, 0.25, -0.25, 0, -0.25, -0.25, 0, 0])\n",
    "print(pred_grad)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.    0.    0.25  0.25  0.    0.25 -0.25  0.   -0.25 -0.25  0.    0.  ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 3.4 here)\n",
    "hexgrad = tinyhex.calc_grad_at_link(hexht)\n",
    "print(hexgrad)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-0.     -0.     -0.0025 -0.0025 -0.     -0.0025  0.0025 -0.      0.0025\n",
      "  0.0025 -0.     -0.    ]\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 3.5 here)\n",
    "hexflux = -0.01 * hexgrad\n",
    "print(hexflux)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.1547009  1.1547009  1.1547     1.1547     1.1547004  1.1547004]\n",
      "[ 3.464101]\n",
      "0.0173205135568\n",
      "0.00500000247013\n"
     ]
    }
   ],
   "source": [
    "# (enter your solution to 3.6 here)\n",
    "print(tinyhex.length_of_face)\n",
    "print(tinyhex.area_of_cell)\n",
    "total_outflux = 6 * 0.0025 * tinyhex.length_of_face[0]\n",
    "divergence = total_outflux / tinyhex.area_of_cell[0]\n",
    "print(total_outflux)\n",
    "print(divergence)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 4: Landlab Components\n",
    "\n",
    "Finally we will use a Landlab component, called the LinearDiffuser [link to its documentation](https://landlab.readthedocs.io/en/latest/reference/components/diffusion.html).\n",
    "\n",
    "Landlab was designed to have many of the utilities like `calc_grad_at_link`, and `calc_flux_divergence_at_node` to help you make your own models. Sometimes, however, you may use such a model over and over and over. Then it is nice to be able to put it in its own python class with a standard interface. \n",
    "\n",
    "This is what a Landlab Component is. \n",
    "\n",
    "There is a whole [tutorial on components](../component_tutorial/component_tutorial.ipynb) and a [page on the User Guide](https://landlab.readthedocs.io/en/latest/user_guide/components.html). For now we will just show you what the prior example looks like if we use the LinearDiffuser. \n",
    "\n",
    "First we import it, set up the grid, and uplift our fault block. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "from landlab.components import LinearDiffuser\n",
    "\n",
    "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n",
    "z = mg.add_zeros('topographic__elevation', at='node')\n",
    "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n",
    "z[mg.y_of_node >\n",
    "  fault_trace_y] += 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we instantiate a LinearDiffuser. We have to tell the component what value to use for the diffusivity. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "ld = LinearDiffuser(mg, linear_diffusivity=D)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally we run the component forward in time and plot. Like many Landlab components, the LinearDiffuser has a method called \"run_one_step\" that takes one input, the timestep dt. Calling this method runs the LinearDiffuser forward in time by an increment dt. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sUq1Csu2BaFjAD7n8vnEPZb2uVgu42377INBY9h7K71gTgydEdEuAD4AYAWA81LFJwFoADiMiKr9nH/r7bbD0scew9dOOAHlSgX5QgHFUgkf+dzncNsTT+CWhx7Chw85BMVSCflCAaVyGV85/ngsXb4cv1i6FH/zrneJC7VUwoIttsCJixdj6aOP4qzLL8cOO+2EcqWCcqWCXd/yFlx47bVYunw5vnXqqdhs/vzoptjvgAPw67vuwpJHHsGhRx4p6srnUSwWccg//ANufeQR3HDffXjfQQehWCqhUCyiOm8ejj/xRNz55JO48tZbsftee0V1bbfDDjj7iitw19NP4/SLLsIbttkmehDs+fa345o77sC9zz+P4048MXp4FEslfOhTn8Lv/vhH3PX00/jUYYclff7GN3D/ihW4dflyvPvAA1GuVFAql7Fgyy3xwwsuwIOvvYbLbroJb9ptN1SqVVSqVey6++64cskSPPDqqzjl3HOx+cKFKMqH8Hv+7u+w9PHH8YdXXsGRX/+6CN7Sjs8feSR+//LLuHfFChx8yCEolcuRz98+7TQsGxnBDQ88gLfuvTcq1SrK1Sq2feMbcf4112D5mjU4/9prse0OO6As7djrne/EjQ88gGUjI/iX009HdbPNorb/0Kc/jf9ZsQIPrlyJQ7/61ciOUrmMo771LTyyejV+99RT2P+DH4x83nzhQvzwgguwbGQEv7j9drx5jz0in9+02264cskSLB8ZwY8uuQQLt9wyavt3H3ggbvvf/8XDq1bh6H/9V5Tk9VYql/HZL30JD6xciftfegkfPfTQyOdKtYpvnHoqlo2M4LcPP4y37buv8LlSwdbbbotzfvELLBsZwUXXXYc37rRTZMdfvu1t+K/77sOykRF8d/FizJs/H0Xp899/4hO457nn8ODKlTjs6KMTv/OR//zPeGT1atz5zDM44OCDUapUUCyVMH/BApxy7rlYvmYNrrnrLrxlzz2junbcdVdcdvPNWDYygsWXX44tt94apUoF5WoVe++/P5Y8+iiWjYzguBNPjF7ESuUyPn344fjDq6/i9y+/jE9+8YvC50IBlWoVx510EpaNjOCW5cux9/77i5eISgVbbbMNzrjiCiwbGcElN96IHXfZJbJj9z33xK/uuQfL16zBonPOwfzNN0exVEKpXMbffeQjuPvZZ/Hw66/jS8cd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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(25):\n",
    "    ld.run_one_step(dt)\n",
    "imshow_grid(mg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### *Exercises for section 4*\n",
    "\n",
    "(4.1) Repeat the steps above that instantiate and run a `LinearDiffuser` component, but this time give it a `RasterModelGrid`. Use `imshow_grid` to display the topography below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 4.1 here)\n",
    "rmg = RasterModelGrid((25, 40), 10)\n",
    "z = rmg.add_zeros('topographic__elevation', at='node')\n",
    "fault_trace_y = 50.0 + 0.25 * rmg.x_of_node\n",
    "z[rmg.y_of_node >\n",
    "  fault_trace_y] += 10.0 + 0.01 * rmg.x_of_node[rmg.y_of_node > fault_trace_y]\n",
    "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n",
    "for i in range(25):\n",
    "    ld.run_one_step(dt)\n",
    "imshow_grid(rmg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(4.2) Using either a raster or hex grid (your choice) with a `topographic__elevation` field that is initially all zeros, write a modified version of the loop that adds uplift to the core nodes each iteration, at a rate of 0.0001 m/yr. Run the model for enough time to accumulate 10 meters of uplift. Plot the terrain to verify that the land surface height never gets higher than 10 m. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 4.2 here)\n",
    "rmg = RasterModelGrid((40, 40), 10)  # while we're at it, make it a bit bigger\n",
    "z = rmg.add_zeros('topographic__elevation', at='node')\n",
    "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n",
    "for i in range(50):\n",
    "    ld.run_one_step(dt)\n",
    "    z[rmg.core_nodes] += dt * 0.0001\n",
    "imshow_grid(rmg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(4.3) Now run the same model long enough that it reaches (or gets very close to) a dynamic equilibrium between uplift and erosion. What shape does the hillslope have?  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2cc6feb0>]"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to 4.3 here)\n",
    "z[:] = 0.0\n",
    "uplift_rate = 0.0001\n",
    "for i in range(4000):\n",
    "    ld.run_one_step(dt)\n",
    "    z[rmg.core_nodes] += dt * uplift_rate\n",
    "imshow_grid(rmg, 'topographic__elevation')\n",
    "plt.figure()\n",
    "plt.plot(rmg.x_of_node, z, '.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(BONUS CHALLENGE QUESTION) Derive an analytical solution for the cross-sectional shape of your steady-state hillslope. Plot this solution next to the actual model's cross-section."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### *SOLUTION (derivation)*\n",
    "\n",
    "##### Derivation of the original governing equation\n",
    "\n",
    "(Note: you could just start with the governing equation and go from there, but we include this here for completeness).\n",
    "\n",
    "Consider a topographic profile across a hillslope. The horizontal coordinate along the profile is $x$, measured from the left side of the profile (i.e., the base of the hill on the left side, where $x=0$). The horizontal coordinate perpendicular to the profile is $y$. Assume that at any time, the hillslope is perfectly symmetrical in the $y$ direction, and that there is no flow of soil in this direction.\n",
    "\n",
    "Now consider a vertical column of soil somewhere along the profile. The left side of the column is at position $x$, and the right side is at position $x+\\Delta x$, with $\\Delta x$ being the width of the column in the $x$ direction. The width of the column in the $y$ direction is $W$. The height of the column, $z$, is also the height of the land surface at that location. Height is measured relative to the height of the base of the slope (in other words, $z(0) = 0$).\n",
    "\n",
    "The total mass of soil inside the column, and above the slope base, is equal to the volume of soil material times its density times the fraction of space that it fills, which is 1 - porosity. Denoting soil particle density by $\\rho$ and porosity by $\\phi$, the soil mass in a column of height $h$ is\n",
    "\n",
    "$m = (1-\\phi ) \\rho \\Delta x W z$.\n",
    "\n",
    "Conservation of mass dictates that the rate of change of mass equals the rate of mass inflow minus the rate of mass outflow. Assume that mass enters or leaves only by (1) soil creep, and (2) uplift of the hillslope material relative to the elevation of the hillslope base. The rate of the latter, in terms of length per time, will be denoted $U$. The rate of soil creep at a particular position $x$, in terms of bulk volume (including pores) per time per width, will be denoted $q_s(x)$. With this definition in mind, mass conservation dictates that:\n",
    "\n",
    "$\\frac{\\partial (1-\\phi ) \\rho \\Delta x W z}{\\partial t} = \\rho (1-\\phi ) \\Delta x W U + \\rho (1-\\phi ) q_s(x) - \\rho (1-\\phi ) q_s(x+\\Delta x)$.\n",
    "\n",
    "Assume that porosity and density are steady and uniform. Then,\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = U + \\frac{q_s(x) - q_s(x+\\Delta x)}{\\Delta x}$.\n",
    "\n",
    "Factoring out -1 from the right-most term, and taking the limit as $\\Delta x\\rightarrow 0$, we get a differential equation that expresses conservation of mass for this situation:\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = U - \\frac{\\partial q_s}{\\partial x}$.\n",
    "\n",
    "Next, substitute the soil-creep rate law\n",
    "\n",
    "$q_s = -D \\frac{\\partial z}{\\partial x}$,\n",
    "\n",
    "to obtain\n",
    "\n",
    "$\\frac{\\partial z}{\\partial t} = U + D \\frac{\\partial^2 z}{\\partial x^2}$.\n",
    "\n",
    "##### Steady state\n",
    "\n",
    "Steady means $dz/dt = 0$. If we go back to the mass conservation law a few steps ago and apply steady state, we find\n",
    "\n",
    "$\\frac{dq_s}{dx} = U$.\n",
    "\n",
    "If you think of a hillslope that slopes down to the right, you can think of this as indicating that for every step you take to the right, you get another increment of incoming soil via uplift relative to baselevel. (Turns out it works the same way for a slope that angles down the left, but that's less obvious in the above math)\n",
    "\n",
    "Integrate to get:\n",
    "\n",
    "$q_s = Ux + C_1$, where $C_1$ is a constant of integration.\n",
    "\n",
    "To evaluate the integration constant, let's assume the crest of the hill is right in the middle of the profile, at $x=L/2$, with $L$ being the total length of the profile. Net downslope soil flux will be zero at the crest (where the slope is zero), so for this location:\n",
    "\n",
    "$q_s = 0 = UL/2 + C_1$, \n",
    "\n",
    "and therefore,\n",
    "\n",
    "$C_1 = -UL/2$, \n",
    "\n",
    "and\n",
    "\n",
    "$q_s = U (x - L/2)$.\n",
    "\n",
    "Now substitute the creep law for $q_s$ and divide both sides by $-D$:\n",
    "\n",
    "$\\frac{dz}{dx} = \\frac{U}{D} (L/2 - x)$.\n",
    "\n",
    "Integrate:\n",
    "\n",
    "$z = \\frac{U}{D} (Lx/2 - x^2/2) + C_2$.\n",
    "\n",
    "To evaluate $C_2$, recall that $z(0)=0$ (and also $z(L)=0$), so $C_2=0$. Hence, here's our analytical solution, which describes a parabola:\n",
    "\n",
    "$\\boxed{z = \\frac{U}{2D} (Lx - x^2)}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2bc6c550>]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# (enter your solution to the bonus challenge question here)\n",
    "L = 390.0  # hillslope length, m\n",
    "x_analytic = np.arange(0.0, L)\n",
    "z_analytic = 0.5 * (uplift_rate / D) * (L * x_analytic - x_analytic * x_analytic)\n",
    "plt.plot(rmg.x_of_node, z, '.')\n",
    "plt.plot(x_analytic, z_analytic, 'r')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Hey, hang on a minute, that's not a very good fit! What's going on? \n",
    "\n",
    "Turns out our 2D hillslope isn't as tall as the idealized 1D profile because of the boundary conditions: with soil free to flow east and west as well as north and south, the crest ends up lower than it would be if it were perfectly symmetrical in one direction.\n",
    "\n",
    "So let's try re-running the numerical model, but this time with the north and south boundaries closed so that the hill shape becomes uniform in the $y$ direction:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEYCAYAAABMVQ1yAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAap0lEQVR4nO3df7Cc1V3H8fcnSUkkmACF8stWoPJj7A+rgpgww6+OmCJtUYKNYzGiEKFAS4GxWkDTWsZqYik/KpjWElocUycVKjRAtQkNJaOY0DaDtfwOLRRarymBEBJy7/36x3MWl727d5+9d/fu7tnPa+aZJ3v2nGefzSafe+55znNWEYGZmfW/ad0+ATMzaw8HuplZJhzoZmaZcKCbmWXCgW5mlokZ3T6BfiLJU4LMOm8oIvafzAEWLFgQQ0NDpepu2rTpnohYMJnX6xUOdDPrNU9N9gBDQ0Ns3LixVF1J+0329XqFA93MMjV4v1A70M0sSxGj3T6FKedAN7MMBe6hm5llYhCXNXGgt2AP4MCastNOPrlu3SMPPnhM2Rv3q3/t5YC9544p+6mf+em6dWceMHtM2ax99xxTtsfes+q2f91eM8eW7Tn2mAAzZuxdp6z+eU2fPvYY06ePPYd6ZQDS68aUTZtW/5+nNL1ead269dX/jx4xMqZsdHS4Tr3ddduPjOwsVVaUvzSmbHj4xbp1h4efH1O2e8fY9ru376rb/pXnx57Dzq076tbd9aOxx3356frn9aPnt40p+0GDmSWP/PCHY8rWrFtXt+7365ZOhAPdzCwTDnQzsyx4yMXMLAsBeJaLmVnfi3AP3cwsIw50M7NMONDNzDIQHnIxM8uHL4qamWXBPXQzsyx4LRczs4x4yMXMLAsecjEzy4YD3cwsA+EvuDAzy4d76GZmmXCgm5n1PS/OZWaWDc9DNzPLRr2vFMydA93MMuUeuplZBrzaoplZRhzoZmaZcKCbmWXBQy5mZlkIwLNczMyy4B66mVk2HOhmZplwoJuZ9b0Iz0M3M8uIA93MLAtey8XMLAtebdHMLCODF+jTun0CZmadEDFaaitD0kJJ10u6T9ILkkLSrQ3qHpqeb7StGud1Fkt6QNJ2Sdsk3Svp9LLv2T10M8tUW3voVwK/AGwHngaOLtHmO8DtdcofqldZ0nLgsnT8zwJ7AIuAOyRdHBE3NHtBB7qZZShK975L+jBF0D4GnAisK9Hm2xGxtMzBJc2nCPPHgWMj4iepfBmwCVgu6c6I2DLecTzkYmaZGi25NRcR6yLi0ejc5Pbz0/7qSpin190CfAaYCZzT7CAOdDPLTuVLostsHXSwpD+S9NG0f/s4dU9J+7vrPHdXTZ2GPORiZhlqadrifpI2Vj1eEREr2nASv5a2V0m6F1gcEd+vKpsNHAJsj4hn6xzn0bQ/stkL9kQPXdJfSfq6pB9IelnSVknfkvTnkl7foM18SWtS3R2SNku6RNL0cV5nUleQzayfRMmNoYg4pmqbbJjvAP4C+GVgn7RVxt1PAr6eQrxibtpva3C8SvnezV64JwKd4oLDbOBfgWuBfwCGgaXAZklvrK4s6b3AeuAE4DaKMaY9gGuAulOC0hXklcBBFFeQbwXeRnEF+aJ2vyEz6652Tlts7XXjxxHxZxHxYEQ8n7b1wKnAfwA/B5w7kUM3q9ArQy5zImJnbaGkq4GPAn8KfCCVzaEI5BHgpIjYmMqvAtYCCyUtiohVVcdpyxVkM+sXQdkLnlMlIoYlfQ44jqIzem16qtIDn1u3YfMe/Kt6oodeL8yTf0r7I6rKFgL7A6sqYV51jCvTwwtqjtOWK8hm1j+61UNv4n/S/tUhl4h4CXgG2EvSQXXaVPLvkWYH74lAH8e7035zVdl4V4PXU4xfzZc0s2Sb0leQzayflB5Dn0q/mvZP1JSvTfsFddq8q6ZOQz0V6JIul7RU0jWS7qO4sLAZ+GRVtaPSfsxPq4gYBp6kGEo6PB2zbVeQzayfdCfQJR0naY865adQXC+E4hpetZvS/gpJ+1S1ORS4ENgF3NzstXtlDL3icuCAqsd3A78fEf9TVdbqFeFJXUGWtARYAtBw+oyZ9Zj23ikq6QzgjPTwwLSfJ2ll+vNQRFye/vxXwFvSFMWnU9nb+f9RgKsiYsNrzjZig6RPAZdSTARZTTHR433AvsDFZa7x9VSgR8SBAJIOAOZT9My/Jen0iHiw5GFUOVyrL9/gnFYAKwBmSoO3fJtZ32rrf9d3AItryg5PG8BTFB1SgC8CvwkcSzFc8jrgRxTXBG+IiPvqnm3EZZI2AxdRdCJHgQeBZRFxZ5mT7KlAr4iIHwG3SXqQYmjlC8Bb09PNrgjPqanXtivIZtYvoq1fcJHWZFlasu7fA38/wde5BbhlIm2hx8bQa0XEU8B3KX592S8VP5z2Y8a8Jc0ADqOYw/5EOkbbriCbWT/pyYuiHdXTgZ4cnPaVH7fjXQ0+AdgT2BARu6rK23IF2cz6Q4+s5TLluh7oko6WdGCd8mnpxqI3UAR0Zf74amAIWCTpmKr6s4BPpIc31hyuLVeQzayPFKnefMtIL4yhLwCWSVpPcSfn/1LMdDmR4oLDc8B5lcoR8YKk8yiC/d707R9bgfdQTGlcDXyp+gXadQXZzKyX9UKg/xvFLJLjKb4RZG/gJYox7S8C10XE1uoGEXG7pBOBK4AzgVkUC89fmuqP+bHbjivIZtY/YjSv3ncZXQ/0iHiIYtij1Xb3A6e12GZSV5DNrF/kNz5eRtcD3cys7fKbwFKKA93M8uQeuplZHgYwzx3oZpapAUx0B7qZZckXRc3McuCLomZmGXEP3cys/wUDmecOdDPLUX7rtJThQDezLA1gnjvQzSxDAXgtFzOzPMQATnNxoJtZngYvzx3oZpapARxEd6CbWZYGMM8d6GaWofAXXJiZZcLz0M3M8jF4ee5AN7P8FLf+D16iO9DNLD9ebdHMLB/uoZuZ5cKzXMzM8jCAHXQHupllaEAXRHegm1meBi/PHehmlqPwRVEzs1z41n8zsxx4HrqZWUY85GJm1v8GdJKLA93MMjWAie5AN7MsDWCeO9DNLEMRvvXfzCwXnoduZpYLB7qZWR4GMM+Z1u0TMDNru8q8xTJbCZIWSrpe0n2SXpAUkm5t0ma+pDWStkraIWmzpEskTR+nzWJJD0jaLmmbpHslnV72bTvQzSxPUXIr50rgIuAdwDPNKkt6L7AeOAG4DfgMsAdwDbCqQZvlwErgIOCzwK3A24A7JF1U5iQ95GJmWWrzWi4fBp4GHgNOBNY1qihpDkUgjwAnRcTGVH4VsBZYKGlRRKyqajMfuAx4HDg2In6SypcBm4Dlku6MiC3jnaR76GaWnUirLZbZSh0vYl1EPBrlGiwE9gdWVcI8HWMnRU8f4IKaNuen/dWVME9ttlD07mcC5zR74a4HuqTXSzpX0m2SHpP0cho7+qakP5RU9xy7MT5lZn2i7HBLZy6cnpL2d9d5bj2wA5gvaWbJNnfV1Gmo64EOnEXx68lxwH8Anwa+DLwV+BzwT5JU3aBb41Nm1kfaeFG0RUel/SNjTymGgScphrsPB5A0GzgE2B4Rz9Y53qNpf2SzFx53DF3SXhGxvdlBJukR4D3AVyNitOq1Pwo8AJwJ/BZFyHd1fMrM+kcLNxbtJ2lj1eMVEbFiEi89N+23NXi+Ur73BOs31KyH/h1J85odZDIiYm1E3FEd5qn8OeCm9PCkqqe6Nj5lZv0jRqPUBgxFxDFV22TCvIzKiEOrvx40rd8s0N8ErJf08fHGpjtod9oPV5V1bXzKzPpEAKMlt/ar9KjnNnh+Tk29ZvWb9eBf1SzQ5wNPAFcAGyT9XLMDtoukGcDvpYfVQTyl41OSlkjaKGnjSMvvwsy6pntj6A+n/ZhMSbl2GEUn9YniNOMlirnte0k6qM7xjkj7MZlXa9xAj4j/pJhIvwI4FviWpCXNDtomn6S4MLomIu6pKp/S8amIWFH5Vawbv6KY2cR0L89Zm/YL6jx3ArAnsCEidpVs866aOg01neUSES9HxAXA6cBLwI2SviLpKElvqrc1O2Yzkj5IcRHze8DZrTavnHqL7QZw5QezXJVM884k+mpgCFgk6ZhKoaRZwCfSwxtr2lSuF14haZ+qNocCFwK7gJubvXDpO0UjYo2ktwBfoAj3RvO3o5Xj1pJ0IXAt8F3gnRGxtaZK18anzKxPtDmrJZ0BnJEeHpj28yStTH8eiojLASLiBUnnUQT7vZJWAVspZvMdlcq/9JrTjdgg6VPApcBmSasppmK/D9gXuLjMLLxWg/ftaRPwHMVPjbaRdAnFXPKHKML8x3WqPQwcQzE+tammfd3xKUnPAIdIOqjOOHrp8Skz6yOjbb3i+Q5gcU3Z4WkDeAq4vPJERNwu6USK649nArMolg24FLiu3h2nEXGZpM0Ua8Ysobhk+yCwLCLuLHOSpQJd0uuAvwQuoQjLjwDLS94GW4qkj1CMm38b+LWIGGpQdS3wuxRjTf9Y81xlfGp9nfGps1Ob2l9bSo9PmVl/CCDamOcRsRRY2mKb+4HTWmxzC3BLK22qNR1DT8Ms/0nxk+V7wHERsazNYX4VRZhvouiZNwpz6OL4lJn1iTYvn9svmt0p+iGKnvlM4Hrgj2t6vpMmaTHwcYo7P+8DPlhzpz/AlohYCd0dnzKz/pFZVpfSbMjlGuBZ4JyI+FqHzuGwtJ9OMaRTzzco1mEBujc+ZWZ9ZAATvVmg3wacV2emSdtMZGwqtZvy8Skz6xf5DaeUMW6gR8SZU3UiZmZtExAjDnQzsywMYAfdgW5mmRrARHegm1l+oqX10LPhQDezPHVmadye5kA3s+wUd4q6h25m1v8iwIFuZpYHj6GbmeVi8PLcgW5mmXIP3cwsA+GLomZm2XCgm5nlIPA8dDOzPIRnuZiZZcNDLmZmmRi8PHegm1l+wotzmZnlw19wYWaWg8Bj6GZmefAsFzOzfHgeuplZHtxDNzPLQQC+KGpmlgf30M3MMhA40M3MsjGA10Qd6GaWofC0RTOzbDjQzcwyUNwo6kA3M8uCe+hmZplwoJuZZWLw4tyBbmYZCs9yMTPLhy+Kmpllwj10M7NMONDNzDLgtVzMzDLitVzMzHIwoLNcpnX7BCQtlHS9pPskvSApJN3apM18SWskbZW0Q9JmSZdImj5Om8WSHpC0XdI2SfdKOr3978jMui2A0dHRUlsZkrakbKq3PdegTcs5NVm90EO/EvgFYDvwNHD0eJUlvRf4MrAT+BKwFXg3cA1wPHBWnTbLgcvS8T8L7AEsAu6QdHFE3NCuN2NmvaED/fNtwKfrlG+vLZhITrVDLwT6hymC9jHgRGBdo4qS5lAE8ghwUkRsTOVXAWuBhZIWRcSqqjbzKcL8ceDYiPhJKl8GbAKWS7ozIrZ04L2ZWZd0YMjl+YhY2qzSRHKqXbo+5BIR6yLi0Sj3t78Q2B9YVflLSsfYSdHTB7igps35aX91JcxTmy3AZ4CZwDkTPH0z61GVu0WbbR0wkZxqi64HeotOSfu76zy3HtgBzJc0s2Sbu2rqmFkGIoLRklsLZkp6v6SPSvqQpJMbjIdPJKfaoheGXFpxVNo/UvtERAxLehJ4C3A48N+SZgOHANsj4tk6x3s07Y/sxMmaWfe0ENX7SdpY9XhFRKyoU+9A4Is1ZU9KOicivlFV1lJOlT/N5vot0Oem/bYGz1fK955g/TEkLQGWAHTs0rSZtV3ZGSzAUEQc06TOzcB9wH8BL1KE8UUU2XCXpHkR8Z1Ud9K5M1H9FujNKO1bHRhrWD/9pF4BMFMavImtZn2qnePjEfGxmqKHgPMlbaeYdLEU+M2Sh5toTjXVb2PolZ9scxs8P6emXrP6zX6SmlkfqnwFXZvH0Ou5Ke1PqCprNafapt8C/eG0HzPmLWkGcBgwDDwBEBEvAc8Ae0k6qM7xjkj7MWNdZtbHSs5waUMv/sdpP7uqrKWcaqd+C/S1ab+gznMnAHsCGyJiV8k276qpY2aZiJLbJM1L++pwnkhOtUW/BfpqYAhYJOnVixiSZgGfSA9vrGlT+ZXoCkn7VLU5FLgQ2EVxwcPMMhHAyOhoqa0ZSW+RtG+d8p8FKneZVy9XMpGcaouuXxSVdAZwRnp4YNrPk7Qy/XkoIi4HiIgXJJ1H8Rd2r6RVFLfUvodiqtBqittsXxURGyR9CrgU2CxpNcWt/+8D9gUu9l2iZvlp40XRs4A/kbQOeJJilsubgd8AZgFrgOVVr9tyTrVL1wMdeAewuKbs8LQBPAVcXnkiIm6XdCJwBXAmxV/oYxSBfV29O04j4jJJm/n/aUajwIPAsoi4s71vx8x6QRsDfR1FEP8ixRDLbOB54JsU89K/WJs7E8mpduh6oKe1EZa22OZ+4LQW29wC3NJKGzPrT+28rT/dNPSNphXHtms5pyar64FuZtYJ/oILM7NMDOIXXDjQzSw7lVkug8aBbmZZcg/dzCwHA/qdog50M8tOZS2XQeNAN7MsuYduZpYJB7qZWQYiwrNczMxy4TF0M7NMeMjFzCwDnuViZpYR99DNzHLgi6JmZnnwkIuZWUY85GJmloMI99DNzHIQuIduZpYN99DNzDLgL7gwM8uFx9DNzPLhQDczy0AA4SEXM7M8uIduZpYDj6GbmeUhgOGRkW6fxpRzoJtZlnxjkZlZBsJDLmZm+Rj1LBczs/7n5XPNzHIR4YuiZmY5CGDEPXQzszx4DN3MLAOe5WJmlhH30M3MMuD10M3MMhER7PYsFzOzPHjIxcwsAxExkEMu07p9AlNJ0s9I+rykH0raJWmLpE9L2qfb52Zm7VMZQy+z5WRgeuiS3gxsAN4AfAX4HvArwIeABZKOj4j/7eIpmlm7DGgPfWACHfhbijD/YERcXymU9Cngw8DVwPldOjcza6NgMMfQB2LIRdLhwKnAFuAzNU//OfAScLak2VN8ambWARHBrldeKbWV1Q9DtoPSQz8l7b8WEa/5sR0RL0q6nyLwfxX4eqODvAJ8v6bspnXr2nmeZtYGEcFwG3vo/TJkOxA9dOCotH+kwfOPpv2RU3AuZjYFRkZGSm0lVQ/ZnhERfxIRpwDXUOTL1R16Gy0ZlECfm/bbGjxfKd+79glJSyRtlLSxI2dmZm0Xo6Ps3rWr1NZMPw3ZDsqQSzNK+zGr+UTECmAFgKTBW+3HrA9FBLtbGB9voi1DtlNhUAK90gOf2+D5OTX1zKyPjY6OsuPFF9t1uDJDtqdSDNk60KfAw2nfaIz8iLRv9IFVDAFPpT/vlx5b//Bn1h9+drIHeAXu+X7xeZcxq2ZIdUX6zbxiwkO2U21QAr0yFeVUSdOqf22S9NPA8cDLwL+Pd5CI2L+q3caIOKYTJ2ud4c9scETEgil8uYZDtlNtIC6KRsTjwNeAQ4ELa57+GDAb+EJEvDTFp2Zmva9vhmwHpYcO8AGKeaTXSXon8N/AccDJFEMtV3Tx3Mysd7VryLbjBqKHDq/20o8BVlIE+WXAm4HrgHkTuClgRfMq1mP8mdlEvGbItvqJVoZsp4JiAL93z8ysFZLuoZjJ0mgtqL+LiK6vBeVANzNros6t/7VDtvN74dZ/B7qZWQmS3gh8HFgAvB54Frgd+FhEbO3muVU40M3MMjEwF0XboR+Wz8yRpNdLOlfSbZIek/SypG2SvinpD2svVFW1my9pjaStknZI2izpEknTx3mtxZIekLQ9vca9kk7v3Lszax/30EsaZ/nMkymmNfXE8pk5knQ+cCPFr7jrKFYxPgD4LYq5wV8Gzoqqf8yS3pvKdwJfArYC76a4jXt1RJxV53WWU8x+ehpYDewBLAL2BS6OiBs69BbN2sKBXlK/XOXOkaRTKG7++mrNXb4HAg8AbwQWRsSXU/kc4DGKsD8+Ijam8lnAWmAe8DsRsarqWPOB+4HHgWMj4iep/FBgU3r9oyNiSyffq9lkeMilhH5aPjNHEbE2Iu6os9Ldc8BN6eFJVU8tBPYHVlXCPNXfCVyZHl5Q8zKVH8ZXV8I8tdlC8ZnPBM6Z3Dsx6ywHejnjLp9J0bPbk2L5TJtau9N+uKqs8nndXaf+emAHMF/SzJJt7qqpY9aTHOjl+BuPepCkGcDvpYfVQdzw84qIYeBJimUvDk/HmQ0cAmyPiGfrvJQ/X+sLDvRy+mb5zAHzSeCtwJqIuKeqvNXPy5+vZcGB3h49s3zmoJD0QYoZKd8Dzm61edq3+nn587We5kAvp2+WzxwEki4ErgW+C5xc5y69Vj+vZvWb9eDNeoIDvZy+WT4zd5IuAW4AHqII8+fqVGv4eaVx98MoLqI+AZDWwX8G2EvSQXWO58/X+oIDvZy+WT4zZ5I+AlwDfJsizH/coOratK/3rTUnUMxI2hAR1V/5Pl6bd9XUMetJDvQS/I1H3SfpKoqLoJuAd0bEeN8Nupriu0MXSXr1K+fSjUWfSA9vrGlTmc9+RfVSDunGoguBXcDNk3gLZh3nO0VL6pflM3MkaTHFF5OMANdTfyx7S0SsrGpzBkWw7wRWUdz6/x7Srf/Ab0fNP35JfwNcymtv/X8fxcp6vvXfep4DvQX9sHxmjiQtpbgjdzzfiIiTatodT/HVgvOAWRTLAXweuC4iRhq81mLgIuDngVHgQWBZRNw5ibdgNiUc6GZmmfAYuplZJhzoZmaZcKCbmWXCgW5mlgkHuplZJhzoZmaZcKCbmWXCgW5mlgkHumVD0rmSQtJd49T5aqrzgak8N7Op4EC3bETE54B/ARakNdNfQ9IFwGnAXRHxt1N9fmad5lv/LSuS3kCxVvps4Jci4uFUfiTwLYpljt/aYB11s77mHrplJa2Rfh7Fmue3SpqRvtTi1lS2xGFuuZrR7RMwa7eI+IqkzwN/APxZKj4WWBkR/9y9MzPrLA+5WJbSN0l9B3hTKvoB8PaIeLF7Z2XWWR5ysSyl4P44MD1tFzjMLXcOdMuSpJ8CPlJVdFa3zsVsqjjQLVd/DRwNXEvxpdJ/IOnd3T0ls87yGLplR9KpwN0U0xePBY4ANgLPU0xZHO8Lps36lnvolhVJ+wI3A7uB90fEroh4CLgKOAC4qZvnZ9ZJDnTLzY3AwcCVEbG5qvxvgPuAMyW9vytnZtZhHnKxbEg6G/gCsB44OSJGa54/DNgMDANvi4inp/4szTrHgW5ZkPQmirAWxXzzpxrUOxf4LPCvwK+H/wNYRhzoZmaZ8Bi6mVkmHOhmZplwoJuZZcKBbmaWCQe6mVkmHOhmZplwoJuZZcKBbmaWCQe6mVkm/g8vSj93Iir7UQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rmg = RasterModelGrid((40, 40), 10)\n",
    "z = rmg.add_zeros('topographic__elevation', at='node')\n",
    "rmg.set_closed_boundaries_at_grid_edges(False, True, False, True)  # closed on N and S\n",
    "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n",
    "for i in range(4000):\n",
    "    ld.run_one_step(dt)\n",
    "    z[rmg.core_nodes] += dt * uplift_rate\n",
    "imshow_grid(rmg, 'topographic__elevation')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fea2ca96310>]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(rmg.x_of_node, z, '.')\n",
    "plt.plot(x_analytic, z_analytic, 'r')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "That's more like it!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Congratulations on making it to the end of this tutorial!\n",
    "\n",
    "### Click here for more <a href=\"https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\">Landlab tutorials</a>"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
